import abc

class AIAssistant(metaclass=abc.ABCMeta):
    def __init__(self, id, name, type, version, is_online, ability_score):
        self.id = id
        self.name = name
        self.type = type
        self.version = version
        self.is_online = is_online
        self.ability_score = ability_score
    
    @abc.abstractmethod
    def execute_task(self, task_content):
        pass
    
    # Getters and setters
    def get_id(self):
        return self.id
    
    def set_id(self, id):
        self.id = id
    
    def get_name(self):
        return self.name
    
    def set_name(self, name):
        self.name = name
    
    def get_type(self):
        return self.type
    
    def set_type(self, type):
        self.type = type
    
    def get_version(self):
        return self.version
    
    def set_version(self, version):
        self.version = version
    
    def is_online_status(self):
        return self.is_online
    
    def set_online(self, online):
        self.is_online = online
    
    def get_ability_score(self):
        return self.ability_score
    
    def set_ability_score(self, ability_score):
        self.ability_score = ability_score
    
    def __str__(self):
        status = "🟢在线" if self.is_online else "🔴离线"
        return f"ID: {self.id}, 名称: {self.name}, 类型: {self.type}, 版本: {self.version}, 状态: {status}, 能力评分: {self.ability_score} [{self.type}助手]"